Server-based thermostat control

ABSTRACT

A system, method and apparatus for remote control of a thermostat by a network-based server, when the thermostat is not connected to a local or wide-area network. A network-based server calculates a modified temperature profile for a thermostat based on a utility&#39;s time-of-use pricing and/or weather forecasts. After the server has calculated the modified temperature profile, it is provided to a mobile device via a wide-area network, and the mobile device provides the modified temperature profile directly to the thermostat when the mobile device is within range of the thermostat.

BACKGROUND I. Field of Use

The present application relates generally to the heating, ventilationand air conditioning arts. More specifically, embodiments of the presentinvention relate to remote control of thermostats by a cloud-basedserver.

II. Description of the Related Art

Thermostats have been used for decades to control room temperaturesbased on user settings and temperature sensors commonly built into thethermostats. Thermostats typically control heating and/or coolingequipment (HVAC) by turning the equipment on or off. For example, when aroom temperature where a thermostat is located drops below a setpoint,the thermostat sends a signal to heating equipment to begin heating theroom. When the setpoint has been achieved or exceeded, the thermostatsends another signal to the heating equipment to turn off.

As wireless communication technology and microprocessors have becomewidespread, modern thermostats can be accessed by smart phones or tabletcomputers in order to define temperature profiles, to set temperatureson demand, and to receive status information. Typically, such wirelesscommunication technology comprises one or more variations of the IEEE802.11 standard, commonly known as Wi-Fi.

While such modern thermostats are convenient, they typically require alocal Wi-Fi network in order for communications to occur. Manyhouseholds in the United States, and a far greater number in other partsof the world, do not have such Wi-Fi networks, because they may not haveaccess to the Internet, either because of financial issues or simplythat the necessary public infrastructure is either non-existent.

It would be desirable, therefore, for thermostats to be able tocommunicate with mobile devices without the need for a local-areanetwork.

SUMMARY

Embodiments of the present invention are directed towards a system,method and apparatus for remotely controlling a thermostat when thethermostat is not in direct communication with a local or wide-areanetwork. In one embodiment, a server is described, comprising a memoryfor storing time-of-use pricing information, a temperature profile andprocessor-executable instructions, wherein the time-of-use pricinginformation comprises energy pricing for one or more time periods, anetwork interface for communicating with a mobile device over thewide-area network, the mobile device associated with the thermostat, anda processor coupled to the memory and the network interface, forexecuting the processor-executable instructions that causes the serverto determine a predicted outdoor temperature where the thermostat islocated, modify the temperature profile based on the time-of-use pricinginformation and the predicted outdoor temperature to produce a modifiedtemperature profile, and provide the modified temperature profile to themobile device associated with the thermostat for the mobile device toprovide the modified temperature profile to the thermostat.

In another embodiment, a mobile device is described, comprising a memoryfor storing modified temperature profile and processor-executableinstructions, the modified temperature profile for replacing atemperature profile stored by the thermostat, a network interface forreceiving a modified temperature profile from a remote server over awide-area network, low-power communication circuitry for communicatingdirectly with the thermostat, and a processor coupled to the memory, thenetwork interface and the low-power communication circuitry, forexecution of the processor-executable instructions that causes themobile device to receive, by the processor via the network interface,the modified temperature profile from the remote server, determine, bythe processor, that the mobile device is within range of the thermostat,and provide, by the processor via the low-power communication circuitry,the modified temperature profile to the thermostat when the mobiledevice is in range of the thermostat.

BRIEF DESCRIPTION OF THE DRAWINGS

The features, advantages, and objects of the present invention willbecome more apparent from the detailed description as set forth below,when taken in conjunction with the drawings in which like referencedcharacters identify correspondingly throughout, and wherein:

FIG. 1 is a top, plan view of a structure utilizing the inventiveconcepts discussed herein;

FIG. 2 is a functional block diagram of one embodiment of thermostat asshown in FIG. 1;

FIG. 3 is a functional block diagram of one embodiment of a server asshown in FIG. 1;

FIG. 4 is a functional block diagram of one embodiment of a mobiledevice as shown in FIG. 1; and

FIG. 5 is a flow diagram of one embodiment of a method, performed by thethermostat, server and mobile device shown in FIG. 1 for controlling thethermostat over a wide-area network.

DETAILED DESCRIPTION

Embodiments of the present invention are directed towards a system,device and method to automatically program a thermostat that is notconnected to a local-area network, such as a home Wi-Fi network. One ormore temperature profiles are received from a remote server by a mobiledevice over a wide-area network, such as the Internet, and provided tothe thermostat when the mobile device determines that it is in range ofthe thermostat. The temperature profiles are optimized to reduce thecost of heating/cooling a residence when time-of-use pricing is ineffect. In one embodiment, the temperature profiles are also optimizedfor anticipated predicted outdoor temperatures.

FIG. 1 is a top, plan view of a structure 100 utilizing the inventiveconcepts discussed herein. In this embodiment, structure 100 comprises amulti-room, single-story residence having a heating system 102, acooling system 104 and a thermostat 106 that controls heating system 102and cooling system 104. Thermostat 106 comprises a temperature sensorthat senses the ambient temperature of the room where thermostat 106 islocated. In some embodiments, thermostat may be configured to receivetwo or more temperature sensor inputs from temperature sensors locatedin other parts of structure 100.

Like prior art thermostats, thermostat 106 may be programmable toexecute one or more temperature profiles in the form of desiredtemperature setpoints and times when these setpoints should be achieved.For example, a user may set thermostat 106 to warm structure 100 to anambient temperature of 74 degrees Fahrenheit at 7 am when the usertypically wakes, to maintain a temperature of no less than 62 degrees at8:30 am when the user leaves structure 100 to go to work, to set thetemperature to 74 degrees Fahrenheit at 6 pm when the user returns fromwork, and to maintain the temperature of no less than 60 degreesFahrenheit at 10 pm when the user typically goes to bed. As each of thetimes set by the user in the temperature profile near, thermostat 106sends signals to heating system 102 or cooling system 104 to begin orstop heating or cooling, depending on the temperature setpoint for eachsetpoint time (i.e., waking, leaving, returning, retiring) and theambient air temperature in the room where thermostat 106 is located.

To achieve the temperature setpoints at the times specified in thetemperature profile, thermostat 106 typically begins heating or coolingbefore the set time for each temperature setpoint. In this way, thedesired room temperature will be achieved at the time desired by theuser. This is known in the art as “temperature ramping”, “thermalramping” or simply, “ramping”. Prior art thermostats may bepre-programmed to begin ramping a predetermined, fixed time periodbefore each setpoint time, such as 15 minutes or 30 minutes.

While many modern-day thermostats offer Internet connectivity, many donot. In addition, while most households in the United States have alocal-area network installed, such as a home Wi-Fi network, many otherhouseholds do not. In these cases, thermostat 106 is not capable ofsending or receiving information via a local or wide-area network, suchas the Internet. However, thermostat 106 may be capable of wirelesscommunications directly with a mobile device 108, such as a smart phoneor tablet computer, using another form of wireless communications, suchas Bluetooth Low Energy (BLE) or near-field communications (NFC). Usingsuch direct communications allows thermostat 106 to receive wirelessinformation, such as setup information and temperature profiles frommobile device 108 when mobile device 108 is within range of thermostat106, and also to provide historical information to mobile device 108.

Mobile device 108 may be in communication with server 110 via alocal-area network, such as a home Wi-Fi router and modem, and awide-area network 114, such as the Internet, or it may be in “direct”communication with server 110 via a cellular network 116. Server 110 maybe used to automatically provide temperature profiles to mobile device108, which may then, in turn, provide them to thermostat 106 when mobiledevice 108 is within range of thermostat 106. Moreover, server 110 maybe capable of receiving information from thermostat 106, such as pasttemperature readings and/or other information, by relaying suchinformation to mobile device 108 when mobile device 108 is within rangeof thermostat 106, whereupon mobile device 108 may provide thisinformation to server 110 via data and/or cellular networks mentionedabove.

Server 110 may be coupled to a weather server 112 to determine past,current and predicted weather conditions in a large number ofgeographical regions, including a region where structure 100 is located.Such past, current and predicted weather information may comprise past,current and predicted predictions of outdoor temperatures, precipitationpredictions, wind speed and direction, cloud coverage, and other past,current and predicted weather-related information.

Server 110 may be programmed with time-of-use pricing information ineffect for one or more utilities. Time-of-use pricing is a new type ofutility billing structure, where rates vary not only on how muchresources are consumed by structure 100, but also on when such resourcesare consumed. For example, a utility 120, coupled to server 110 viawide-area network 114, may set electricity time-of-use rates at $0.14per kilowatt-hour for electricity consumed between 4 am and 4 pm, $0.21per kilowatt-hour for electricity consumed between 4 pm and 9 pm, and$0.12 per kilowatt-hour for electricity consumed between 4 am and 4 pm.Server 110 may use the time-of-use pricing information, in conjunctionwith past usage data, past or current weather conditions, and/orpredicted weather forecasts, to generate temperature profiles that willresult in the lowest cost to the homeowner. Such temperature profilesmay then be provided to mobile device 108 and then relayed to thermostat106 when mobile device 108 is within range of thermostat 106. It shouldbe understood that the term “temperature profile”, as used herein, mayrefer to all temperature setpoints, starting and stopping times thatdefine a temperature profile, or it can refer to a single profileattribute, such as a single temperature setting, a single temperaturesetting, a single ramp start time, etc. It should be understood that insome embodiments, the functionality of server 100 may be provided byutility 120.

FIG. 2 is a functional block diagram of one embodiment of thermostat106. FIG. 2 shows processor 200, memory 202, low-power communicationcircuitry 204, user interface 206, and temperature sensor 208. It shouldbe understood that in some embodiments, some functionality has beenomitted for purposes of clarity, such as a power supply.

Processor 200 comprises one or more general-purpose microprocessors,microcontrollers and/or custom or semi-custom ASICs, and/or discretecomponents able to carry out the functionality required for operation ofthermostat 106. Processor 200 may be selected based on processingcapabilities, power-consumption properties, and/or cost and sizeconsiderations. In the case of a microprocessor, microcontroller, orASIC, processor 200 generally executes processor-executable instructionsstored in memory 202 that control the functionality of the intelligentpersonal assistant.

Memory 202 one or more non-transitory information storage devices, suchas RAM, ROM, EEPROM, UVPROM, flash memory, SD memory, XD memory, orother type of electronic, optical, or mechanical memory device. Memory202 is used to store processor-executable instructions for operation ofmobile device 108, as well as any information used by mobile device 108,such as temperature profiles, historical temperature readings, humiditylevels, occupancy status, etc. It should be understood that in someembodiments, a portion, or all of, memory 202 is incorporated intoprocessor 200 and, further, that memory 202 excludes media forpropagating signals.

Low-power communication circuitry 204 comprises electronic circuitrynecessary to communicate directly, and wirelessly, with mobile device108, i.e., without the use of an intermediary system such as a homeWi-Fi network. Such communication circuitry 204 may comprise one or morediscreet components, integrated circuits, ASICs, or other circuitrywell-known in the art for low-power communications directly with mobiledevice 108, such as BLE, NFC, or other well-known communicationcircuitry.

User interface 206 comprises one or more keys, buttons, switches,touchpads, touchscreens, or other devices that allows a user to operatethermostat 106, and to enter information that may be used by thermostat106, such as a location of structure 100, a square footage of structure100, an age of structure 100, a number of stories that structure 100has, etc.

Temperature sensor 208 comprises a device that provides electronicsignals to processor 200 in accordance with the ambient air temperaturesurrounding thermostat 106. In some embodiments, temperature sensor 208is not used, and thermostat 106 receives temperature readings from oneor more temperature sensors located in one or more locations ofstructure 100. Temperature sensor 208 may comprise one of a thermistor,a resistive temperature detector, a thermocouple, semiconductor-typedevices, or other temperature sensors known in the art.

FIG. 3 is a functional block diagram of one embodiment of server 300,comprising processor 300, memory 302, and network interface 304.

Processor 300 is configured to provide general operation of server 300by executing processor-executable instructions stored in memory 302, forexample, executable code. Processor 300 typically comprises ageneral-purpose processor, such as an i5 processor manufactured by IntelCorporation of Santa Clara, Calif., although any one of a variety ofmicroprocessors, microcomputers, and/or microcontrollers may be usedalternatively.

Memory 302 comprises one or more information storage devices, such asRAM, ROM, EEPROM, UVPROM, flash memory, SD memory, XD memory, or othertype of electronic, optical, or mechanical memory device. Memory 302 isused to store processor-executable instructions for operation of server300, as well as any information used by server 110, such as user accountinformation (including names, addresses, thermostat makes and models,billing information, contact information, etc.), time-of-use pricinginformation from one or more utility providers (i.e., gas, electric,water), and past, current and predicted weather information (such aspast and/or current weather conditions and predicted temperatures,humidity, wind speed and direction, etc.).

Network interface 304 comprises circuitry necessary for processor 300 tocommunicate over one or more networks, such as wide-area network 114.Such circuitry is well known in the art.

FIG. 4 is a functional block diagram of one embodiment of mobile device108, showing processor 400, memory 402, user interface 404, transceiver406 and low-power communication circuitry 408. It should be understoodthat the functional blocks shown in FIG. 4 may be connected to oneanother in a variety of ways, and that not all functional blocksnecessary for operation of mobile device 108 are shown (such as a powersupply), for purposes of clarity.

Processor 400 is configured to provide general operation of mobiledevice 108 by executing processor-executable instructions stored inmemory 400, for example, executable code. Processor 400 typicallycomprises one or more microprocessors, microcontrollers, or custom ASICsthat provide communications functionality to mobile device 108 as wellas to execute instructions that provide an ability for personalcommunication device to determine modified temperature profiles andcommunicate with server 110 and thermostat 106.

Memory 402 comprises one or more non-transient information storagedevices, otherwise referred to as one or more processor-readablemediums, such as RAM, ROM, flash memory, SD memory, XD memory, orvirtually any other type of electronic, optical, or mechanical memorydevice. Memory 402 is used to store the processor-executableinstructions for general operation of mobile device 108 and for storinga software application or “app” that interacts with a user in order toprovide certain information to server 110, such as user accountinformation and information about thermostat 106, as well as to relaycommunications between server 110 and thermostat 106.

User interface 404 is coupled to processor 400, allowing a user tocontrol typical functions of mobile device 108, including making andreceiving phone calls, sending and receiving text messages, andinteracting with apps. User interface 400 may comprise one or morepushbuttons, touchscreen devices, electronic display devices, lights,LEDs, LCDs, biometric readers, switches, sensors, keypads, microphones,speakers, and/or other human interface devices. A very popular userinterface device today is a touchscreen device.

Transceiver 406 comprises circuitry necessary to transmit and receiveinformation to/from server 110, either via wide-area network 114,cellular network 116, or both. In some embodiments, more than onetransceiver is present, for example, a cellular transceiver and a Wi-Fitransceiver. Such circuitry is generally well known in the art.

Low-power communication circuitry 408 comprises electronic circuitrynecessary to communicate directly, and wirelessly, with thermostat 106,i.e., without the use of an intermediary system such as a home Wi-Finetwork. Such communication circuitry 408 may comprise one or morediscreet components, integrated circuits, ASICs, or other circuitrywell-known in the art for low-power communications directly withthermostat 106, such as BLE, NFC, or other well-known communicationcircuitry.

FIG. 5 is a flow diagram of one embodiment of a method, performed bythermostat 106, server 110 and mobile device 108 for controllingthermostat 106 over a wide-area network that is not in communicationwith a local or wide-area network. It should be understood that thesteps described in this method could be performed in an order other thanwhat is shown and discussed and that some minor method steps may havebeen omitted for clarity and simplicity. It should also be understoodthat the functionality described in this method by server 110 could beperformed by mobile device 108.

At block 500, a user initiates contact with server 110 in order toregister thermostat 106 with server 110 so that server 110 can provideone or more temperature profiles to thermostat 106, and for thermostat106 to provide information to server 110 for use in generating thetemperature profiles, in some embodiments. The user launches an apprunning on mobile device 108 that provides communications with server110 and thermostat 106. Once connected to server 110, the user mayprovide server 110 with initial contact information such as informationabout the user (i.e., name, date of birth), structure 100 (i.e.,location), thermostat 106 (make, model), billing information, contactinformation (physical address, email address, phone number), a utilityaccount number and access code, etc.

At block 502, processor 300 within server 110 receives the initialcontact information from mobile device 108 and, in response, creates anaccount associated with the user in memory 302. The account creates anassociation between thermostat 106 and mobile device 108, as well as allof the data stored within the account.

At block 504, processor 300 receives time-of-use pricing informationfrom one or more utilities, such as utility 120. This information may beprovided to processor 300 via network interface 304 or by programmingserver 110 via a user interface (not shown). In one embodiment, server110 receives time-of-use pricing information from a large number ofutilities at regular time intervals, such as once per month, or theinformation is “pushed” to server 110 whenever a change in time-of-usepricing information is effectuated by a utility. In another embodiment,in response to receiving the initial contact information, or at somelater time, processor 300 determines a location of structure100/thermostat 106, and determines a utility that services thatlocation. Then, processor 300 queries the utility, via network interface304, to provide time-of-use pricing information. In a relatedembodiment, processor 300 uses a utility account number provided bymobile device 108 to determine a utility associated with thermostat 106.In any case, processor 300 stores the time-of-use pricing informationfor each utility in memory 302 and, in some cases, associates aparticular time-of-use pricing information with any user account havinga location serviced by a particular utility that provided the particulartime-of-use pricing information. In one embodiment, along with thetime-of-use pricing information, processor 300 receives geographicalinformation from each utility, specifying a geographic boundary whereservice is offered, such as one or more zip codes, or mappinginformation.

At block 506, processor 300 receives past and/or current weatherconditions and/or weather forecasts from weather server 112. Thisinformation is received via network interface 304, either at regulartime intervals or upon a material change in forecast by weather server112. While only one weather server 112 is shown in FIG. 1, in actualitythere may be hundreds of such weather servers, each providingweather-related data for a particular geographic area. Past and currentweather conditions may comprise temperatures, wind speeds anddirections, humidity levels and other weather-related informationrelated to one or more particular geographic regions. The weatherforecasts may comprise predicted temperatures, predicted wind speeds anddirections, predicted humidity levels and other predictedweather-related information related to one or more particular geographicregions. In one embodiment, in response to receiving the initial contactinformation, or at some later time, processor 300 determines a locationof structure 100/thermostat 106, and determines a weather server thatprovides weather information pertaining to that location. Then,processor 300 queries the server, via network interface 304, to providepast and/or current weather conditions and/or weather forecasts. In anycase, processor 300 stores the conditions/forecasts in memory 302 and,in some cases, associates a particular conditions/forecast with any useraccount having a location covered by the conditions/forecasts. In oneembodiment, along with the conditions/forecasts, processor 300 receivesgeographical information specifying a geographic area where theconditions/forecasts pertain, such as one or more zip codes, or mappinginformation.

At block 508, mobile device 108 may program thermostat 106 with atemperature profile, where the temperature profile is provided directlyfrom mobile device 108 to thermostat 106 via low-power communicationcircuitry 408 when mobile device 108 is within range of thermostat 106.In another embodiment, a user enters a temperature profile intothermostat 106 using user interface 206. In this case, the temperatureprofile may be provided from thermostat 106 to mobile device 108 whenmobile device 108 is within range of thermostat 106.

At block 510, mobile device 108 may provide the temperature profile toserver 110, along with identifying information for processor 300 tostore the temperature profile in memory 302 in an account associatedwith mobile device 108, a user, or thermostat 106.

At block 512, thermostat 106 may additionally provide historical data tomobile device 108 in the form of previous actual temperatures measuredby thermostat 106, determinations by thermostat 106 whether varioustemperature set points were reached within given ramp times, humiditylevels, past energy usage and/or associated billing information, HVACusage data (such as the times when a fan is turned on and off, the timeswhen a compressor is active, and/or the times when a furnace is active),and previous temperature profiles used by thermostat 106. The historicaldata is provided to mobile device 108 via low-power communicationcircuitry 204 when mobile device 108 is within range of thermostat 106.Mobile device 108 may provide this historical information at varioustimes to server 110 and processor 300 may store it in the user accountassociated with mobile device 108, thermostat 106, structure 100 or auser.

At block 514, processor 300 determines a modified temperature profilefor thermostat 106. The term “modified temperature profile”, as usedherein, comprises a set of one or more temperature settings and relatedset point times determined by server 110, based on either analready-existing temperature profile, or one generated without the useof an already-existing temperature profile. The modified temperatureprofile may be determined initially upon receipt of the initialinformation from mobile device 108, the time-of-use pricing informationand the conditions/forecast information pertaining to the location ofthermostat 108 or structure 100. Alternatively, or in addition, themodified temperature profile may be calculated at regular timeintervals, such as once per day, and/or upon a material change of thetime-of-use pricing information and/or the conditions/forecastinformation.

In one embodiment, processor 300 determines a modified temperatureprofile by first retrieving a baseline temperature profile from memory302. The baseline profile may comprise a temperature profile provided bymobile device 108, or a predefined temperature profile based on averagetemperatures and average temperature settings for homes in particulargeographic areas. In other embodiments, processor 300 does not use abaseline profile, and builds a temperature profile from scratch. Suchbaseline temperature profiles, each covering a particular geographicregion, may be pre-stored in memory 302 by an operator of server 110,taking into account expected average outdoor temperatures in eachgeographic region and the time of year. The baseline temperature profilemay comprise set times and temperatures, as discussed above.

After the baseline temperature profile has been retrieved, processor 300may retrieve a weather forecast, either from memory 302 or from weatherserver 112, associated with the location of thermostat 106, structure100 or the user or user account. The weather forecast may be used tomodify the baseline temperature profile (or create a new, modifiedtemperature profile) to account for expected, changing weatherconditions. For example, if the outdoor temperature where thermostat 106is located is expected to cool significantly over the next 48 hours,processor 300 may create or modify a ramp time when a heating cycleshould begin on the morning just before the cold weather is due toarrive, by beginning a heating cycle earlier than the baseline timeindicates. For example, if the baseline temperature profile indicates atemperature setpoint of 73 degrees, and a heating time starting at 6:45am, processor 300 may modify the start time to begin at 6:15 am if theweather forecast calls for cold temperatures below a predeterminedthreshold, which could be an absolute temperature (i.e., 65 degrees), ora temperature differential between an average temperature and aforecasted temperature (i.e., 5 degrees). If a warming trend will beoccurring in the next several days, processor 300 may alter the baselinetemperature profile to begin a heating cycle later than the baselineramp start time, or begin a cooling cycle earlier than the baseline rampstart time. Alternatively, or in addition, a ramp end time can beadjusted by processor 300 to achieve the same goal.

Alternatively or in addition to adjusting a temperature ramp start time,processor 300 may adjust a setpoint temperature in response totime-of-use pricing information and/or weather forecasts. Using theexample above, in one embodiment, processor 300 may decrease thetemperature setpoint from 73 degrees to 72 degrees in order that theramp time be minimized, as well as to conserve energy by setting thetemperature setpoint at 72.

Alternatively, or in addition to the above, processor 300 may factortime-of use pricing information into the modified temperature profile.For example, if the price of electricity increases during 4 pm and 9 pm,processor 300 may attempt to cool structure 100 during off-peak hours,in order to conserve the amount of electricity used during peak hours.For example, during summertime, if the baseline temperature profileindicates a temperature of 72 degrees at 5:30 pm, with a ramp start timeof 5:00 pm, processor 300 may calculate a new ramp start time of 3 pm,in order to start cooling structure 100 early, before 4 pm when theprice of electricity increases. In this way, the price of coolingstructure 100 will be reduced.

In another example, if a weather forecast indicates that a heat wavewill arrive in three days, with temperatures averaging ten degrees abovenormal summer temperatures in the location of thermostat, lasting sevendays, processor 300 may alter one or more temperature setpoints in thebaseline temperature profile by calculating an estimated cost of usingthe baseline temperature profile and then calculating one or moremodified temperature profiles having one or more of the temperaturesetpoints increased. For example, continuing the example from above, ifthe baseline temperature profile comprises a setpoint of 72 degrees at5:30 pm, with a cooling ramp start time of 5:00 pm, processor firstestimates how much it would cost to cool structure 100 using thisinformation in conjunction with the time-of-use pricing information.Processor 300 can base this calculation off of historical informationoriginating from thermostat 106. In other words, processor 300 canevaluate the historical information and determine that when it isactually one hundred degrees at 5 pm at the location of thermostat 106,structure 100 was not cooled to the desired temperature set point withinthe ramp time, but that structure 100 was cooled to the temperature setpoint at 6 pm. Thus, processor 300 can determine an estimated time thatcooling must be active in order to achieve the desired temperaturesetpoint, as well as a cost, based on the time-of-use pricinginformation. Processor 300 can then estimate a cost associated withaltering the ramp start time to a time earlier than the baseline starttime and, assuming structure 100 reaches the desired temperature setpoint at 5:30, calculate a cost to cool structure 100 based on theextended ramp time during off-peak hours, and to maintain such atemperature during peak hours. Processor 300 can then determine whetherthe modified temperature profile would save money on cooling costs.

In another embodiment, processor 300 may alter one or more temperaturesetpoints, additionally or alternatively to altering one or moretemperature ramp start times. In this embodiment, a setpoint may bealtered based, again, on past and/or present weather conditions and/orforecasts and/or on time-of-use pricing information pertinent to thelocation of thermostat 106. For example, if the weather forecast callsfor colder weather than usual, i.e., less than a predeterminedtemperature threshold or temperature differential, processor 300 mayestimate the cost of heating structure 100, based on the time-of-usepricing information and, in one embodiment, the historical data fromthermostat 106 and historical weather data from weather server 112. Forexample, near the beginning of December, processor 300 may retrievehistorical data from memory 302 to determine an amount of energy used toheat structure 100 during the previous December, or to determine a costto heat structure 100 the previous December by retrieving historicalbilling information for structure 100 from an account stored in memory302 or utility 120. Processor 300 may, in addition, retrieve atemperature profile that was active during the previous December byretrieving such a temperature profile from memory 302. Processor 300 canassociate the cost to heat structure 100 to the historical temperaturedata and compare forecasted temperatures for the following month toestimate the cost to heat structure 100 for the month, based on thetime-of-use pricing information. If the forecast indicates that themonth will be colder than the previous year, processor 300 can generatea modified temperature profile, in one embodiment, based on the previoustemperature December profile, to alter one or more setpoints to a lowertemperature setting, in order to approximate the cost of heatingstructure 100 in the previous December.

In another example, processor 300 determines a modified temperatureprofile by comparing a desired monthly energy cost, previously providedby a user utilizing the app on mobile device 108, to a month-to-dateestimate of energy usage costs. In this example, the term “monthly” isused to either denote a colander month, or a monthly billing cycle. Theuser could provide a desired monthly utility cost for each month of theyear, and the desired monthly utility costs could be stored in theuser's account in memory 302. Processor 300 can estimate a month-to-datecost for heating or cooling structure 100, based on the month-to-dateHVAC data received from mobile device 108 in connection with thetime-of-use pricing information, or directly from utility 120, using theuser's account number and passcode stored in memory 302. Processor thencan estimate the month's utility cost using the month-to-date usage/costinformation plus a remaining monthly cost based on one or more weatherforecasts and the time-of-use pricing information. For example, knowingthe predicted temperatures for the remaining portion of a month,processor 300 can estimate a remaining monthly utility cost by comparingthe predicted temperatures with past actual temperatures provided byweather server 112 and previous costs to heat or cool structure 100,based on previous utility bills. Processor 300 may search memory 302 toidentify past temperatures most closely matching the predictedtemperatures, and identify a past utility bill covering the period ofthe past temperatures most closely matching the forecast. Then,processor 300 may estimate the remaining billing cycle cost bycalculating a daily average utility cost for the previous billing cycle,then multiplying that figure by the number of days remaining in thebilling cycle. If the estimated cost of the monthly utility bill exceedsthe desired monthly utility cost, processor 300 can adjust one or moretemperature setpoints in a modified temperature profile to reduce theexpected energy usage of the HVAC system. The amount of change to theone or more setpoints to achieve the desired monthly utility cost may bedetermined by a trial-and-error process, favoring small changes in orderto avoid uncomfortable temperatures inside structure 100. For example,after adjusting one or more setpoints, and providing the modifiedtemperature profile to thermostat 106 via mobile device 108 (describedbelow), processor 300 may receive updated HVAC usage information fromthermostat 106 via mobile device 108, or from utility 120 and determinewhether usage/cost was reduced by an amount to meet the desired monthlyutility cost, based on continuing with the current modified temperatureprofile that was provided to thermostat 106. If the resulting usage/costsavings is not enough to achieve the desired monthly utility cost,processor 300 may again adjust one or more temperature setpoints in themodified temperature profile, and send this updated modified temperatureprofile to thermostat 106. This process may be repeated until processor300 determines that the latest temperature setpoints will achieve thedesired monthly utility cost, based on the weather forecast.

In yet another embodiment, server 110 may generate a modifiedtemperature profile based on a determination, from utility 120 orrelated entity, that utility demand is, or is expected to, exceedsupply. In these circumstances, it is desirable to change thetemperature profile on a large number of thermostats in an area servedby utility 120 to conserve utility resources and avoid brownout orblackouts. Processor 300 may receive notice from utility 120 of such asupply/demand imbalance and, in response, generate a modifiedtemperature profile that raises one or more temperature setpoints duringhot weather and lowers one or more temperature setpoints during coldweather. Processor 300 may raise or lower one or more temperaturesetpoints by a predetermined amount, such as 5% or 2 degrees initially,then readjust one or more temperature setpoints if another notice fromutility 120 to further reduce energy consumption.

At block 516, after processor has modified the baseline temperatureprofile, creating a modified temperature profile, processor 300 providesthe modified temperature profile to mobile device 108. Processor 300provides the modified temperature profile to mobile device 108 inaccordance with adjustments made to ramp start times, stop times, andtemperature setpoints. For example, if a weather forecast has predicteda cold front to arrive in three days, and processor 300 modifies atleast one ramp start time, stop time, or temperature setpoint as aresult of the cold front, processor 300 may provide the modifiedtemperature profile to mobile device 108 just before arrival of the coldfront, i.e., after a scheduled temperature set point time has passedbefore arrival of the cold front, and before the scheduled temperatureset point time arrives on a day that the cold front arrives. Processor300 provides the modified temperature profile to mobile device 108 viawide-area network 114 and/or cellular network 116.

At block 518, mobile device 108 receives the modified temperatureprofile and stores it in memory 402 until mobile device 108 is withinrange of thermostat 106.

At block 520, processor 400 determines that mobile device 108 is withinrange of thermostat 106, in one embodiment, by scanning for an“advertisement package” transmitted periodically by thermostat 106. Whenprocessor 400 receives an advertising package via low-powercommunication technology 408, processor 400 determines that mobiledevice 108 is within range of thermostat 106. In response, processor 400may initiate a communication with thermostat 106 using low-powercommunication circuitry 408. Alternatively, processor 400 causeslow-power communication circuitry 408 to periodically broadcastadvertising packages, and thermostat 106 determines that mobile device108 is within range when thermostat 106 receives the advertisingpackage. In response, thermostat 106 may initiate a communication withmobile device 108 using low-power communication circuitry 204. Othermethods may be used to determine proximity, as is well-known in the art.

At block 522, in response to determining that mobile device 108 iswithin range of thermostat 106, processor 400 checks memory 402 todetermine if any modified thermostat profiles have been stored. If so,processor 400 retrieves the modified thermostat profile and transmits itvia low-power communication circuitry 408 directly to thermostat 106.

At block 524, processor 200 within thermostat 106 may check memory 202to determine if there is any historical information ready fortransmission to mobile device 108. If so, processor 200 causes thehistorical information to be transmitted to mobile device 108 vialow-power communication circuitry 204.

At block 526, mobile device 108 provides the historical information toserver 110, for use in future modifications to the modified temperatureprofile.

The methods or steps described in connection with the embodimentsdisclosed herein may be embodied directly in hardware or embodied inmachine-readable instructions executed by a processor, or a combinationof both. The machine-readable instructions may reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, harddisk, a removable disk, a CD-ROM, or any other form of storage mediumknown in the art. An exemplary storage medium is coupled to theprocessor such that the processor can read information from, and writeinformation to, the storage medium. In the alternative, the storagemedium may be integral to the processor. The processor and the storagemedium may reside in an ASIC. In the alternative, the processor and thestorage medium may reside as discrete components.

Accordingly, an embodiment of the invention may comprise anon-transitory processor-readable media embodying code ormachine-readable instructions to implement the teachings, methods,processes, algorithms, steps and/or functions disclosed herein.

While the foregoing disclosure shows illustrative embodiments of theinvention, it should be noted that various changes and modificationscould be made herein without departing from the scope of the inventionas defined by the appended claims. The functions, steps and/or actionsof the method claims in accordance with the embodiments of the inventiondescribed herein need not be performed in any particular order.Furthermore, although elements of the invention may be described orclaimed in the singular, the plural is contemplated unless limitation tothe singular is explicitly stated.

I claim:
 1. A server for controlling a thermostat over a wide-areanetwork, comprising: a memory for storing time-of-use pricinginformation, a temperature profile and processor-executableinstructions, wherein the time-of-use pricing information comprisesenergy pricing for one or more time periods; a network interface forcommunicating with a mobile device over the wide-area network, themobile device associated with the thermostat; and a processor coupled tothe memory and the network interface, for executing theprocessor-executable instructions that causes the server to: determine apredicted outdoor temperature where the thermostat is located; modifythe temperature profile based on the time-of-use pricing information andthe predicted outdoor temperature to produce a modified temperatureprofile; and provide the modified temperature profile to the mobiledevice associated with the thermostat for the mobile device to providethe modified temperature profile to the thermostat.
 2. The server ofclaim 1, wherein the processor-executables that cause the server todetermine a predicted outdoor temperature where the thermostat islocated comprises instructions that cause the server to: determine, bythe processor, a location of the thermostat; receive, by the processorvia the network interface, a weather forecast for an area that includesthe location of the thermostat from a weather server; and determine, bythe processor, the predicted outdoor temperature from the weatherforecast.
 3. The server of claim 1, wherein the processor-executableinstructions that cause the server to determine the location of thethermostat and to provide the modified temperature profile to the mobiledevice associated with the thermostat comprises instructions that causethe server to: receive, by the processor via the network interface, arequest from the mobile device to create an account associated with thethermostat; in response to receiving the request, create an account andstore the account in the memory; receive, by the processor via thenetwork interface, a geographic location of the thermostat and contactinformation associated with the mobile device; store, by the processorin the memory, and the geographic location of the thermostat and contactinformation; retrieve, by the processor, the geographic location and thecontact information from the memory; and provide, by the processor viathe network interface, the modified temperature profile to the mobiledevice in accordance with the contact information.
 4. The server ofclaim 1, wherein the instructions that cause the server to modify thetemperature profile comprises instructions that cause the server to:modify, by the processor, a temperature ramp start time when thepredicted weather forecast indicates that the predicted outdoortemperature will exceed a predetermined threshold during a first timeperiod.
 5. The server of claim 1, wherein the instructions that causethe server to modify the temperature profile comprises instructions thatcause the server to: modify, by the processor, a temperature set pointwhen the predicted weather forecast indicates that the predicted outdoortemperature will exceed a predetermined threshold during a first timeperiod.
 6. The server of claim 4, wherein the processor-executableinstructions that cause the server to provide the modified temperatureprofile to the mobile device associated with the thermostat comprisesinstructions that cause the server to: provide the modified temperatureprofile to the mobile device after a scheduled temperature set pointtime has passed, and before the scheduled temperature set point timearrives on a day that the predicted outdoor temperature will exceed thepredetermined threshold.
 7. The server of claim 1, wherein theprocessor-executable instructions that cause the server to modify thetemperature profile based on the time-of-use pricing information and thepredicted outdoor temperature comprises instructions that cause theserver to: determine, by the processor, a first cost to heat or cool astructure where the thermostat is located during a first time periodusing the temperature profile and the time-of-use pricing information;determine, by the processor, a second cost to heat or cool the structureduring the first time period using the modified temperature profile andthe time-of-use pricing information; and provide, by the processor viathe network interface, the modified temperature profile to the mobiledevice when the second cost is less than the first cost.
 8. A mobiledevice for direct communications a thermostat that is not incommunication with a local-area network, comprising: a memory forstoring modified temperature profile and processor-executableinstructions, the modified temperature profile for replacing atemperature profile stored by the thermostat; a network interface forreceiving a modified temperature profile from a remote server over awide-area network; low-power communication circuitry for communicatingdirectly with the thermostat; and a processor coupled to the memory, thenetwork interface and the low-power communication circuitry, forexecution of the processor-executable instructions that causes themobile device to: receive, by the processor via the network interface,the modified temperature profile from the remote server; determine, bythe processor, that the mobile device is within range of the thermostat;and provide, by the processor via the low-power communication circuitry,the modified temperature profile to the thermostat when the mobiledevice is in range of the thermostat.
 9. The mobile device of claim 8,wherein the modified temperature profile comprises a temperature profilethat defines HVAC turn-on and turn-off times and associated temperatureset points.
 10. The mobile device of claim 8, wherein the modifiedtemperature profile is optimized for time-of-use utility pricing,determined by the remote server.
 11. The mobile device of claim 8,wherein the modified temperature profile is optimized for time-of-useutility pricing in anticipation of predicted outdoor temperatures. 12.The mobile device of claim 8, comprising further processor-executableinstructions that causes the mobile device to: receive, by the processorvia the low-power communication circuitry, registration information fromthe thermostat, the registration information comprising identificationinformation identifying a model of the thermostat; wherein theprocessor-instructions that cause the mobile device to provide themodified temperature profile to the thermostat comprise instructionsthat cause the mobile device to: generate, by the processor, one or moremessages, the one or more messages comprising the modified temperatureprofile formatted for receipt by the thermostat in accordance with themodel of the thermostat.
 13. The mobile device of claim 8, comprisingfurther processor-executable instructions that causes the mobile deviceto: receive, by the processor via the low-power communication circuitry,registration information from the thermostat, the registrationinformation comprising identification information identifying a model ofthe thermostat and contact information identifying the mobile device;and provide, by the processor via the network interface, theregistration information and the contact information to the remoteserver; wherein the modified temperature profile is received by theprocessor, via the network interface, formatted by the remote server inaccordance for receipt by the thermostat in accordance with theregistration information.
 14. A processor-readable medium tangiblyembodying processor-executable instructions that cause a mobile deviceto perform a method, comprising: receiving, by a processor via a networkinterface, modified temperature profile from a remote server;determining, by the processor, that the mobile device is within range ofthe thermostat; and providing, by the processor via a low-powercommunication circuitry, the modified temperature profile to thethermostat when the mobile device is in range of the thermostat.
 15. Theprocessor-readable medium of claim 14, wherein the modified temperatureprofile comprises a temperature profile that defines HVAC turn-on andturn-off times and associated temperature set points.
 16. Theprocessor-readable medium of claim 14, wherein the modified temperatureprofile is optimized for time-of-use utility pricing, determined by theremote server.
 17. The processor-readable medium of claim 14, whereinthe modified temperature profile is optimized for time-of-use utilitypricing in anticipation of predicted outdoor temperatures.
 18. Theprocessor-readable medium of claim 14, comprising furtherprocessor-executable instructions that causes the mobile device toperform the following method: receiving, by the processor via thelow-power communication circuitry, registration information from thethermostat, the registration information comprising identificationinformation identifying a model of the thermostat; wherein theprocessor-instructions that cause the mobile device to provide themodified temperature profile to the thermostat comprise instructionsthat cause the mobile device to: generating, by the processor, one ormore messages, the one or more messages comprising the modifiedtemperature profile formatted for receipt by the thermostat inaccordance with the model of the thermostat.
 19. The processor-readablemedium of claim 14, comprising further processor-executable instructionsthat causes the mobile device to perform the following method:receiving, by the processor via the low-power communication circuitry,registration information from the thermostat, the registrationinformation comprising identification information identifying a model ofthe thermostat and contact information identifying the mobile device;and providing, by the processor via the network interface, theregistration information and the contact information to the remoteserver; wherein the modified temperature profile is received by theprocessor, via the network interface, formatted by the remote server inaccordance for receipt by the thermostat in accordance with theregistration information.